unit Core;

interface

uses
  BaseTypes;

type
  TCore = class(TInterfacedObject, ICore)
  strict private
    class var FInstance: TCore;
    constructor Create;
  public
    class function GetInstance: TCore;
  end;

implementation

constructor TCore.Create;
begin
  inherited;
end;

class function TCore.GetInstance: TCore;
begin
  If FInstance = nil Then
  begin
    FInstance := Core.TCore.Create();
  end;
  Result := FInstance;
end;

end.
